home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / LinkB.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  6.1 KB  |  267 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:LinkB.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Theory of Operation
  13.  * 
  14.  * 
  15.  *  Classes defined in this interface
  16.  * 
  17.  */
  18.  
  19.  
  20. #ifndef SOM_ODBaseLink_xh
  21. #define SOM_ODBaseLink_xh
  22.  
  23. class ODBaseLink;
  24.  
  25. #define ODBaseLink_MajorVersion 1
  26. #define ODBaseLink_MinorVersion 0
  27.  
  28. /* C++ som defs */
  29. #include <somcls.xh>
  30.  
  31. /* Include C++ parent defs */
  32. #ifndef SOM_ODPersistentObject_xh
  33. #include <PstObj.xh>
  34. #endif
  35.  
  36. #ifndef ODBaseLink_API
  37. #define ODBaseLink_API
  38. /*
  39.  * -- The Class API
  40.  */
  41.  
  42. /*
  43.  * Start of user-defined types:
  44.  */
  45. class ODExtension;
  46. class ODLinkSource;
  47. class ODStorageUnit;
  48. class ODPart;
  49. class ODPartList;
  50. class ODDraft;
  51.  
  52. /*
  53.  * End of user-defined types.
  54.  */
  55.  
  56. #if applec ^ PRAGMA_LIB_EXPORT
  57. #pragma lib_export on
  58. #endif
  59.  
  60.  
  61. /* A procedure to create the ODBaseLink Class */
  62. SOMEXTERN SOMClass * SOMLINK ODBaseLinkNewClass(
  63.         integer4 majorVersion,
  64.         integer4 minorVersion);
  65.  
  66. /* The API to the ODBaseLink class object, and the methods it introduces. */
  67. typedef struct ODBaseLinkClassDataStructure {
  68.     SOMClass *classObject;
  69.     somMToken Lock;
  70.     somMToken Unlock;
  71.     somMToken GetContentStorageUnit;
  72.     somMToken RegisterDependent;
  73.     somMToken UnregisterDependent;
  74.     somMToken GetChangeID;
  75.     somMToken GetChangeTime;
  76.     somMToken GetStatus;
  77.     somMToken ShowSourceContent;
  78.     somMToken UpdateDependents;
  79.     somMToken CloneTo;
  80.     somMToken reserved1;
  81.     somMToken reserved2;
  82. } ODBaseLinkClassDataStructure;
  83. #ifdef SOM_NO_DATA_EXPORTS
  84.    SOMEXTERN ODBaseLinkClassDataStructure * ODBaseLinkGetClassData ( void );
  85. #   undef ODBaseLinkClassData
  86. #   define ODBaseLinkClassData (*ODBaseLinkGetClassData())
  87. #else
  88.    SOMEXTERN ODBaseLinkClassDataStructure ODBaseLinkClassData;
  89. #endif /* SOM_NO_DATA_EXPORTS */
  90.  
  91. #if applec ^ PRAGMA_LIB_EXPORT
  92. #pragma lib_export off
  93. #endif
  94.  
  95. #define _ODBaseLink ODBaseLinkClassData.classObject
  96.  
  97. /* The API to parentMtabs for ODBaseLink, and the instance data it introduces. */
  98. SOMEXTERN struct ODBaseLinkCClassDataStructure {
  99.     somMethodTabs parentMtab;
  100.     somDToken instanceDataToken;
  101. } ODBaseLinkCClassData;
  102.  
  103. /*
  104.  * -- Typedefs for Procedures that support Methods introduced by ODBaseLink
  105.  */
  106. SOMEXTERN {
  107. typedef ODBoolean   (* SOMLINK somTD_ODBaseLink_Lock)(ODBaseLink *somSelf, Environment *ev,
  108.         ODULong wait,
  109.         ODLinkKey key);
  110. typedef void   (* SOMLINK somTD_ODBaseLink_Unlock)(ODBaseLink *somSelf, Environment *ev,
  111.         ODLinkKey key);
  112. typedef ODStorageUnit*   (* SOMLINK somTD_ODBaseLink_GetContentStorageUnit)(ODBaseLink *somSelf, Environment *ev,
  113.         ODLinkKey key);
  114. typedef void   (* SOMLINK somTD_ODBaseLink_RegisterDependent)(ODBaseLink *somSelf, Environment *ev,
  115.         ODPart* clientPart,
  116.         ODChangeID id);
  117. typedef void   (* SOMLINK somTD_ODBaseLink_UnregisterDependent)(ODBaseLink *somSelf, Environment *ev,
  118.         ODPart* clientPart);
  119. typedef ODChangeID   (* SOMLINK somTD_ODBaseLink_GetChangeID)(ODBaseLink *somSelf, Environment *ev);
  120. typedef ODTime   (* SOMLINK somTD_ODBaseLink_GetChangeTime)(ODBaseLink *somSelf, Environment *ev);
  121. typedef ODError   (* SOMLINK somTD_ODBaseLink_GetStatus)(ODBaseLink *somSelf, Environment *ev);
  122. typedef void   (* SOMLINK somTD_ODBaseLink_ShowSourceContent)(ODBaseLink *somSelf, Environment *ev);
  123. typedef void   (* SOMLINK somTD_ODBaseLink_UpdateDependents)(ODBaseLink *somSelf, Environment *ev,
  124.         ODChangeID id);
  125. typedef ODStorageUnit*   (* SOMLINK somTD_ODBaseLink_CloneTo)(ODBaseLink *somSelf, Environment *ev,
  126.         ODDraftKey draftKey,
  127.         ODDraft* destDraft);
  128. }
  129.  
  130. #endif /* ODBaseLink_API */
  131.  
  132.  
  133. /*
  134.  * -- Method Tokens are Thunks
  135.  */
  136. #undef somresolve_
  137. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  138.  
  139. /*
  140.  * -- The C++ Wrapper Class for ODBaseLink
  141.  */
  142. class ODBaseLink : public ODPersistentObject
  143. {
  144. public:
  145.  
  146. void *operator new(size_t size)
  147. {
  148.    SOM_IgnoreWarning(size);
  149.    if (!ODBaseLinkClassData.classObject) 
  150.       ODBaseLinkNewClass(ODBaseLink_MajorVersion,ODBaseLink_MinorVersion);
  151.    return (void *)
  152.       ((somTD_SOMClass_somNew)
  153.       somresolve_((SOMObject *)((void*)(ODBaseLinkClassData.classObject)),
  154.                  SOMClassClassData.somNew))
  155.          ((SOMClass *)((void*)(ODBaseLinkClassData.classObject)));
  156. }
  157.  
  158. void operator delete(void * obj)
  159. {
  160.    ((SOMObject *)obj)->somFree();
  161. }
  162.  
  163. /* public method: Lock */
  164. ODBoolean   Lock(Environment *ev,
  165.         ODULong wait,
  166.         ODLinkKey key)
  167. {
  168.    return SOM_Resolve(this,ODBaseLink,Lock)
  169.     (this,ev,wait,key);
  170. }
  171.  
  172.  
  173. /* public method: Unlock */
  174. void   Unlock(Environment *ev,
  175.         ODLinkKey key)
  176. {
  177.    SOM_Resolve(this,ODBaseLink,Unlock)
  178.     (this,ev,key);
  179. }
  180.  
  181.  
  182. /* public method: GetContentStorageUnit */
  183. ODStorageUnit*   GetContentStorageUnit(Environment *ev,
  184.         ODLinkKey key)
  185. {
  186.    return SOM_Resolve(this,ODBaseLink,GetContentStorageUnit)
  187.     (this,ev,key);
  188. }
  189.  
  190.  
  191. /* public method: RegisterDependent */
  192. void   RegisterDependent(Environment *ev,
  193.         ODPart* clientPart,
  194.         ODChangeID id)
  195. {
  196.    SOM_Resolve(this,ODBaseLink,RegisterDependent)
  197.     (this,ev,clientPart,id);
  198. }
  199.  
  200.  
  201. /* public method: UnregisterDependent */
  202. void   UnregisterDependent(Environment *ev,
  203.         ODPart* clientPart)
  204. {
  205.    SOM_Resolve(this,ODBaseLink,UnregisterDependent)
  206.     (this,ev,clientPart);
  207. }
  208.  
  209.  
  210. /* public method: GetChangeID */
  211. ODChangeID   GetChangeID(Environment *ev)
  212. {
  213.    return SOM_Resolve(this,ODBaseLink,GetChangeID)
  214.     (this,ev);
  215. }
  216.  
  217.  
  218. /* public method: GetChangeTime */
  219. ODTime   GetChangeTime(Environment *ev)
  220. {
  221.    return SOM_Resolve(this,ODBaseLink,GetChangeTime)
  222.     (this,ev);
  223. }
  224.  
  225.  
  226. /* public method: GetStatus */
  227. ODError   GetStatus(Environment *ev)
  228. {
  229.    return SOM_Resolve(this,ODBaseLink,GetStatus)
  230.     (this,ev);
  231. }
  232.  
  233.  
  234. /* public method: ShowSourceContent */
  235. void   ShowSourceContent(Environment *ev)
  236. {
  237.    SOM_Resolve(this,ODBaseLink,ShowSourceContent)
  238.     (this,ev);
  239. }
  240.  
  241.  
  242. /* public method: UpdateDependents */
  243. void   UpdateDependents(Environment *ev,
  244.         ODChangeID id)
  245. {
  246.    SOM_Resolve(this,ODBaseLink,UpdateDependents)
  247.     (this,ev,id);
  248. }
  249.  
  250.  
  251. /* public method: CloneTo */
  252. ODStorageUnit*   CloneTo(Environment *ev,
  253.         ODDraftKey draftKey,
  254.         ODDraft* destDraft)
  255. {
  256.    return SOM_Resolve(this,ODBaseLink,CloneTo)
  257.     (this,ev,draftKey,destDraft);
  258. }
  259.  
  260.  
  261.  
  262. };   /* ODBaseLink */
  263.  
  264.  
  265.  
  266. #endif       /* SOM_ODBaseLink_xh */
  267.